package net.stogi.unicore.beyond.api.service;

import java.util.List;

import net.stogi.common.api.exception.BusinessException;
import net.stogi.unicore.beyond.api.dto.TaskInstance;
import net.stogi.unicore.beyond.api.exception.ValidationException;
import net.stogi.unicore.beyond.api.model.InputType;
import net.stogi.unicore.beyond.api.model.OutputType;
import net.stogi.unicore.beyond.api.model.TaskDefinition;

public interface TaskService {

	TaskDefinition getTaskDefinition(Long id) throws BusinessException;
	
	List<InputType> listInputTypes();
	
	List<OutputType> listOutputTypes();
	
	List<TaskDefinition> listTaskDefinitions() throws BusinessException;
	
	void runTaskInstance(TaskInstance taskInstance) throws ValidationException;
	
	void saveTaskDefinition(TaskDefinition taskDefinition) throws BusinessException;
}
